package com.xavier.dong.nio;

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

/**
 * @author XavierDong
 **/
public class NIOFileChannel01 {


    public static void main(String[] args) throws IOException {
        String str = "hello 你好";

        //创建一个输出流
        FileOutputStream fileOutputStream = new FileOutputStream("file01.txt");

        // 通过输出流 获取 对应的文件 Channel
        // 真实类型 FileChannelImpl
        FileChannel fileChannel = fileOutputStream.getChannel();


        // 创建一个缓冲区
        ByteBuffer byteBuffer = ByteBuffer.allocate(1024);

        // 将 String 放入 ByteBuffer
        byteBuffer.put(str.getBytes());

        // 进行 反转 ，主要是 position 和 limit
        byteBuffer.flip();

        // 将 ByteBuffer 数据 写入到 FileChannel 中
        fileChannel.write(byteBuffer);

        fileOutputStream.close();

    }
}
